Стаття являє собою покрокове керівництво, яке описує створення елемента управління ActiveX за допомогою Microsoft Visual C # 2012 і подальшого його вбудовування в графічні сторінки SCADA Vijeo Citect.
Для кого призначена стаття
Технічний рівень статті передбачає в якості цільової аудиторії SCADA інженерів, системних інтеграторів і окремих розробників, які мають досвід роботи з SCADA Vijeo Citect, досвід програмування на Cicode і досвід використання технології .NET.
У статті ми будемо використовувати Microsoft Visual C # 2012 Professional (російська редакція) та SCADA Schneider Electric Vijeo Citect 7.30 (англійська редакція). В якості операційної системи використовувалася російська редакція Microsoft Windows 7 Professional Service Pack 1 з усіма оновленнями на момент написання статті.
Створення проекту в Visual Studio 2012
Для початку давайте створимо новий проект в Visual Studio 2012 використовуючи шаблон Бібліотека класів (Class Library) як показано нижче, на рис. 1. і дамо йому проекту, наприклад, назвемо проект MyFirstActiveX.
Мал. 1. Створення нового проекту в Microsoft Visual Studio 2012
Як тільки проект буде створений, видаліть автоматично створений файл класу Class1.cs з Обозревателя рішень, як показано на рис. 2.
Мал. 2. Видалення файлу класу Class1.cs зі створеного проекту Microsoft Visual Studio 2012
Визначення властивостей і методів
Перед тим як визначати властивості і методи елемента управління ActiveX, необхідно визначити інтерфейс, в якому далі будуть оголошені властивості і методи. Потім інтерфейс необхідно зареєстрований в системному реєстрі Windows, щоб інші додатків змогли отримати інформацію про послуги елементом управління властивостях і методах.
Щоб додати новий інтерфейс в проект керуйтеся рис. 3 і рис. 4.
Мал. 3. Додавання нового елемента в проект Microsoft Visual Studio 2012
Мал. 4. Додавання нового інтерфейсу в проект Microsoft Visual Studio 2012
До створеному інтефейс тепер необхідно додати наступні атрибути:
- [ComVisible (true)]
- [InterfaceType (ComInterfaceType .InterfaceIsIDispatch)]
- [Guid ( "281206BC-9115-44D8-95F9-D9EF76EE27C2")]
Перший атрибут інтерфейсу робить його «видимим» для контейнера елементів управління ActiveX, яким є Vijeo Citect.
Точки зору на другий потрібно щоб контейнер міг отримувати повідомлення про події від нашого елемента керування ActiveX, які ми визначимо нижче в статті.
Третій атрибут потрібно для реєстрації інтерфейсу в системному реєстрі Windows.
Примітки:
- Guid повинен бути унікальним. Для створення унікального Guid використовуйте наступний пункт меню Visual Studio 2012: сервіс> Створити GUID (В утиліті виберіть п'ятий формат GUID) або ж скористатися, наприклад, веб-сайтами, які дозволяють в режимі онлайн згенерувати Guid.
- Щоб ці атрибути можна було задіяти в нашому проекті необхідно підключити простір імен System.Runtime.InteropServices. Для цього перейдіть в початок файлу MyFirstActiveX.cs і додайте таку інструкцію: using System.Runtime.InteropServices;