Citect - а що всередині

Клік-клік - кілька клацань миші, вносимо дані у пару форм на екрані, запускаємо налаштований сервер вводу-виводу - і будь-який SCADA-пакет відображає на екрані потрібний об'єкт з реального життя (датчик, вимикач, індикатор) і прив'язує його параметри до апаратури.

Одним натисканням кнопки на екрані ми запускаємо та зупиняємо мотор чи конвеєр, контролюємо температуру в печі та регулюємо швидкість подачі заготовки. У простих тестах все виглядає і працює чудово, і, як правило, у будь-якому SCADA-пакеті можна додати автоматичну генерацію сигналів тривоги при перевищенні параметром заданого значення, відобразити в реальному часі параметри на графіках і надрукувати найпростіший звіт (рис. 1).

всередині

Мал. 1. Одним натисканням кнопки починаємо готувати тісто

Припустимо, SCADA обрано, настав час роботи над реальним проектом. Створено потрібну кількість інтерфейсів для оператора, враховано та додано всі параметри, під'єднані всі контролери. Запускаємо. Але що це:

- клік-клік - а мотор не вмикається або вмикається з великою затримкою;

- функція, яку ми написали для обробки даних, перешкоджає ходу всієї програми;

- Дані від апаратури надходять з помилками;

- локальна мережа настільки перевантажена, що неможливо додати додаткові місця оператора.

Ні, все це не так страшно, шляхом численних компромісів можна досягти більш-менш пристойного функціонування програми, - найгірше попереду:

- при спробі додавання додаткової апаратури стає зрозуміло, що система знаходиться і так у своїх можливостей;

- Модернізація автоматично тягне за собою повну зміну проекту;

- інтеграція SCADA у існуючіКорпоративні системи управління вкрай утруднена.

Занадто похмуро? Не. Тут перерахована лише мала частина проблем, з якими стикаються повсюдно компанії, що впроваджують системи АСУТП (читай: SCADA). І що важливо, вирішення всіх цих проблем неможливе без значного збільшення вартості проекту.

Звичайно, програмне забезпечення не є ідеальним. Чи не ідеальні і SCADA-пакети. Але час грає на руку споживачеві. На зміну SCADA-пакетам першої хвилі, які набули достатнього поширення в СНД, приходять інші, більш досконалі рішення, які широко застосовуються за кордоном, але поки що практично невідомі на нашому ринку. Прикладом такого програмного забезпечення є пакет SCADA Citect австралійської компанії Ci Technologies (www.cit.com.au).

Що має майже 20-річну історію розробки програмного забезпечення для автоматизації виробничих процесів Ci Technologies, завдяки чіткій та спочатку продуманій концепції, зуміла створити пакет, вільний від більшості недоліків. Citect працює більш ніж на 20 000 підприємств у всьому світі і часто легко вирішує багато раніше нездійсненних завдань.

Що виділяє Citect на тлі пакетів SCADA аналогічного призначення?

Цілком багатозадачне ядро ​​реального часу. Не секрет, що в деяких пакетах SCADA оновлення даних організовано на основі опитування параметрів в рамках одного основного завдання та відповідного оновлення екрана в задані моменти часу. Подібний алгоритм дуже нагадує кооперативну багатозадачність, реалізовану у Windows 3.х. При цьому наслідки для роботи всієї програми практично ідентичні - якщо з якихось причин відбувається збій будь-якої функції основного завдання, то порушується робота всього пакета. Так, затримка з отриманням даних, необхідних дляоновлення результатів на одному (!) з графіків, часто призводить в таких системах до повної зупинки всієї програми до тих пір, поки запит не буде виконано. Хоча цьому нема чого дивуватися. Багато SCADA-пакети з'явилися в епоху Windows 3.х, і їх ядро ​​не змінювалося з давніх-давен.

Ядро Citect спочатку задумано та реалізовано з урахуванням принципів побудови систем реального часу. Анімація об'єктів на екрані, обмін даними, функції, створені користувачем та вбудовані в систему, обробляються своїми незалежними потоками з чітким розподілом пріоритетів. Багатопоточність реалізована за схемою з витісненням, коли пріоритетніша задача витісняє менш пріоритетну, а всередині класу задач з одним пріоритетом витіснення проводиться за круговою схемою (round robin) шляхом виділення квантів процесорного часу.

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

даних

Мал. 2. Один сервер – кілька клієнтів

Архітектура клієнт-сервер. Більшість SCADA-пакетів так чи інакше прагнуть втілити цю концепцію, але Citect робить це особливо елегантно. Масштабується як система цілком, т. е. за схемою один сервер - кілька клієнтів (рис. 2), а й кожне із завдань. Так, різні комп'ютери можна розподілити завдання побудови (рис. 3).

даних

Мал. 3. Кілька серверів – кілька клієнтів

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

Для зберігання самої програми та файлів конфігурації можна також виділити окремий файл-сервер. Чи потрібно згадувати, що клієнт-серверна архітектура в Citect може бути реалізована за допомогою Інтернету?

Резервування. Маючи можливість не тільки відображати щось на екрані, але й генерувати керуючі впливи, більшість SCADA-пакетів під Windows так і залишаються лише красивими картинками. Основна причина цього – низька надійність унаслідок відсутності засобів вбудованої підтримки резервування. Якщо комп'ютер, на якому функціонує SCADA, виходить з ладу, якщо обривається зв'язок з апаратурою або мережею - виходить з ладу весь ланцюг керування.

У Citect можна резервувати все: сервер повністю, його окремі завдання (alarms, trends, reports, files), мережеві з'єднання та зв'язок з апаратурою (рис. 4).

Citect

Мал. 4. Резервуємо все

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

Алгоритм, що використовується при реалізації резервування, є досить інтелектуальним для того, щоб не створювати подвоєного навантаження на мережу. Основний сервер взаємодіє з апаратурою та періодично надсилає повідомлення резервному серверу, завдяки чому останній може зберігати в пам'яті поточний статус системи. Якщо основний сервер виходить з ладу, резервний бере управління на себе і працює доти, доки основний не приступить до роботи. Відразу після цього відбувається оновлення бази даних основного сервера даними резервного та управління переходить назад до основного сервера.

Звичайно, зв'язок між серверами можна зробити як по одній мережі, так ірізним (виділеним) мережам. І їх також резервувати.

Швидкість, швидкість, швидкість. Що думає оператор про SCADA-систему, коли він натискає на кнопку включення двигуна (будь-якого відповідального механізму), але нічого не відбувається? А якщо сигнал тривоги, згенерований на об'єкті, надходить до оператора не відразу, а через 5, 10 секунд?

Адекватна робота із сигналами від реальної апаратури, особливо коли вони складають замкнутий ланцюг управління, – головне завдання для будь-якого SCADA-пакету. На жаль, більшість SCADA-пакетів дуже погано масштабуються при зміні навантаження, тобто при зміні числа сигналів і параметрів (вікон, елементів керування, кількості функцій, що виконуються і т. д.). Якщо ми порівнюватимемо швидкість відгуку системи при мінімальному числі вхідних параметрів, то отримаємо дуже схожі результати, але швидкість відгуку зі збільшенням навантаження принципово зміниться.

Основна причина полягає в тому, що у більшості SCADA-пакетів, що базуються на Windows, на відміну від Citect відсутнє ядро ​​реального часу. Саме тому теоретична та практична межа для таких SCADA-пакетів - 10 000 - 30 000 параметрів (tags), у той час як Citect може працювати з числом змінних до 500 000. І ця величина теоретично не є межею.

Хоча такі великі системи реалізуються досить рідко, але навіть у діапазоні 5000 – 10 000 параметрів Citect має безперечні та відчутні переваги. Пакет працює з роздільною здатністю за часом 1 мс. Це стосується як роботи з даними, так і оновлення графіків реального часу та інших об'єктів.

Оптимізація введення-виведення. Ефективна організація ядра системи дуже важлива, але з менш відповідальним елементом будь-якого SCADA-пакета є реалізація підсистеми вводу-вывода, тобто.обміну даними з апаратурою. Незважаючи на збільшення промислових контролерів з високошвидкісними інтерфейсами (Ethernet, промислові мережі), число контролерів, що обмінюються з комп'ютером за низькошвидкісними інтерфейсами типу RS-232 (422, 485), ще дуже велике, і неефективний обмін даними в цьому випадку сильно позначається на швидкості роботи всієї системи.

Поряд із оптимізацією протоколів обміну як таких, Citect пропонує різні методи кешування даних для усунення навантаження низькошвидкісних мереж. Так, якщо два різних клієнта протягом встановленого проміжку часу (cache threshold) запитують у сервера ті самі дані, він не надсилає два запити до контролера, як роблять багато SCADA-пакети, а лише один, надаючи другому клієнту дані з кеш- пам'яті.

Для ефективної оптимізації обміну величина cache threshold налаштовується, хоча в більшості випадків параметри за замовчуванням оптимальні. Крім того, ядро ​​Citect автоматично поповнює кеш-пам'ять свіжими даними (read-ahead), зчитуючи їх у фоновому режимі, пропорційно до завантаження системи. Доречно згадати, що у Citect є більше 130 драйверів до різних контролерів плюс повна підтримка OPC.

Citect

Відкритість. Переважна більшість SCADA-пакетів, незважаючи на їхню реалізацію на стандартній платформі Windows, є закритими, якщо йдеться про структуру даних, з якими вони працюють. Багато з них мають стандартні інтерфейси типу DDE, OLE, ODBC та ін., але зберігають спеціалізовані, нестандартні формати файлів для архівів, графіків та сигналізаторів. Щоб отримати доступ до даних у подібних системах, необхідно скористатися спеціалізованими пакетами розробника, але часто це взагалі неможливо.

Citect не робитьсекрету з формату своїх даних - всі параметри та дані програми зберігаються у форматі dBase, який розуміється будь-яким пакетом. Дані можна зберігати і в сучасних SQL базах даних, використовуючи стандартні інтерфейси Citect.

Така відкритість буде оцінена тими, хто не мав можливості, скажімо, відобразити на екрані дані з архіву в потрібному оператору вигляді, а не так, як вміє SCADA.

Ще Citect дозволяє викликати стандартні бібліотеки DLL Windows, забезпечуючи додатковий метод доступу до даних. Ці бібліотеки можуть також бути написані розробником Сі++ або іншою мовою, використовуючи спеціалізований інтерфейс CTAPI.

Ухвалена Ci Technologies схема ліцензування Citect не передбачає плати за систему розробки. Для створення та перевірки проектів можна використовувати той же диск, який поширюється як демоверсія, оскільки він не обмежує розробника ні в кількості параметрів (до 42 000), ні у використанні змінних вводу-виводу. Єдине обмеження полягає у часі роботи середовища виконання. Тут є два варіанти – 15 хвилин або 8 годин. У разі необхідно замовити спеціальний ключ вартістю $365 доларів. Ця версія також може поставлятися для створення проектів на будь-яку кількість змінних. Таким чином, версія зі спеціальним ключем може використовуватися системними інтеграторами для побудови та налагодження систем будь-якої складності до ухвалення рішення про закупівлю програмного забезпечення. Всі доступні драйвери, розроблені Ci Technologies або її партнерами, поставляються разом з демонстраційним диском і не вимагають оплати при застосуванні у проектах.

Час працює на споживача, надаючи нові можливості у старій упаковці. SCADA-пакети не є винятком.

Комплекс у Західній Австралії з видобутку та переробки міді, урану, золота та срібла є найбільшим підприємством, розташованим на площі понад 29 000 га, і в той же час найбільшою у світі SCADA-системою, реалізованою за допомогою Citect.

Загальна кількість змінних, що надходять з контролерів, дорівнює 441257, що є абсолютним світовим рекордом. При цьому час відгуку на 17 клієнтських вузлах на окремому об'єкті графічної сторінки

0,5 с, тривалість завантаження нової сторінки

1,5 с. При роботі система реєструє та відображає без втрат даних 64 000 сигналізаторів та 20 500 параметрів на графіках реального часу. Загальна кількість фізичних пристроїв (датчики, реле, мотори тощо) перевищує 40 000.