Доступ к .NET сборкам в Vijeo Citect 2015

Доступ к .NET сборкам в Vijeo Citect 2015

В SCADA системе Vijeo Citect 2015 появилась новая мощная функциональность - возможность использования программной архитектуры Microsoft .NET Framework при разработке систем диспетчеризации. Как использовать эту функциональность, какие существуют нюансы, какие могут быть получены преимущества от ее использования - все это рассматривается в статье.

Назначение статьи

Цель статьи - дать знания о том, как в Vijeo Citect 2015 получить доступ к .NET сборкам. Такая возможность позволяет напрямую использовать Microsoft .NET Framework, либо самостоятельно написанные .NET сборки через ряд cicode функций в Vijeo Citect 2015. Благодаря этому достигается большая гибкость в разработке систем диспетчеризации. Например, надо ли нам получить данные от веб-службы в систему диспетчеризации или передать данные из системы диспетчеризации во внешнюю информационную систему, все это делается достаточно эффективно с использованием .NET Framework, более того, огромное количество различных примеров использования .NET Framework в сети Интернет существенно упрощает и ускоряет решение многих инженерных задач.

Статья покажет, как создать простую .NET сборку и как её использовать в Vijeo Citect 2015 для тех, у кого недостаточно опыта в написании своих собственных .NET сборок. Для более продвинутых приводятся примеры прямого вызова функций из .NET Framework, а также описывается как .NET Framework может быть использован для построения более сложных решений.

Статья является комплементарной ко встроенной или онлайн помощи Vijeo Citect. Для получения более детальной информации об использованных в статье cicode функциях, пожалуйста, обратитесь ко встроенной или онлайн помощи Vijeo Citect.

Терминология

Термин Описание
Assembly
(Сборка)
Сборка - файл, который создается автоматически, когда C# проект успешно откомпилирован. Сборка может быть в виде исполняемого файла (с расширением .exe) или в виде динамически связываемой библиотеки (файл с расширением .dll).

Class
(Класс)

Класс - тип данных, который описывает объект. Классы содержат данные и методы, которые выполняют действия над данными класса.
Method
(Метод)
Метод - имя блока кода, который определяет поведение класса или структуры.

Property
(Свойство)

Свойство - член класса, которое обеспечивает гибкий механизм для чтения, записи или вычисления значения для приватного поля класса.
Member
(Член класса)
Член класса - поле, свойство, метод или событие объявленные в классе или структуре.
Struct
(Структура)
Структура - составной тип данных, который обычно используется для хранения нескольких переменных, которые логически связанны друг с другом. Структура может также содержать методы и события. Структура не поддерживает наследование, но поддерживает интерфейс.
Static
(Статичный)
Класс или метод объявленный как статический, создаются автоматически, поэтому нет необходимости создавть их экземпляры с помощью ключевого слова new.
Object
(Объект)
Объект - экземпляр класса. Объект существует в памяти и имеет данные и методы, которые выполняют действия над данными объекта.
MSDN Microsoft developer network (Сеть разработчиков Microsoft). Сайт содержащий документацию и примеры использования Microsoft .NET Framework. Сайт находится по адресу: http://msdn.microsoft.com.
Namespace
(Пространство имен)
Namespace - ключевое слово, которое используется для объявления области видимости, которое в свою очередь содержит набор связанных объектов. Можете использовать пространство имен для организации элементов кода и для создания глобально уникальных типов.
Constructor
(Конструктор)
Конструктор - специальный метод класса или структуры, который инициализирует объекты соответствующего типа.

Используемые сicode функции

В статье будут часто использоваться ряд cicode функций, которые позволят получать доступ к .NET сборам. Перед чтением статьи, пожалуйста, изучите их подробное описание во встроенной или онлайн помощи Vijeo Citect 2015:
  • DllClassCreate;
  • DllClassCallMethod;
  • DllClassGetProperty;
  • DllClassDispose.

Hello World (C#)

В этом примере будет создана простая C# сборка, которая будет вызвана из cicode Vijeo Citect 2015. В примере используется Visual Studio 2015 Community для создания .NET сборки на языке программирования C#.

Полный код на C# данного примера может быть найдет в Приложении А: "Hello World!" код на C# (Visual Studio 2015).

Создание новой библиотеки классов

Первое, что необходимо сделать - это запустить Visual Studio 2015 Community и создать новый проект.

Доступ к .NET сборкам в Vijeo Citect 2015. Создание проекта новой библиотеки классов
Рис. 1. Создание проекта новой библиотеки классов

В диалоге создания нового проекта выберите "Class Library" и введите имя библиотеки классов и имя решения "HelloWorld", затем щелкните на кнопке "OK".

Доступ к .NET сборкам в Vijeo Citect 2015. Выбирает тип проекта "Class Library"
Рис. 2. Выбор типа проекта "Class Library"

Доступ к .NET сборкам в Vijeo Citect 2015. Новый проект библиотеки классов HelloWorld создан
Рис. 3. Новый проект библиотеки классов HelloWorld создан.
 

Переименуйте класс "Class1" в "HelloWorld". В результате должен получится следующий код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloWorld
{
    public class HelloWorld
    {
    }
}

Теперь сохраним проект, для этого необходимо щелкнуть на кнопке "Save all".

Конструктор

Для создания экземпляра класса, класс должен содержать конструктор. Каждый не статический класс может содержать один и более конструкторов. Каждый конструктор должен отличаться набором аргументов. В нашем случае конструктор будет без аргументов.

Создадим в классе "HelloWorld" приватное поле строкового типа с именем "_helloWorldString", поле будет содержать текстовое сообщение. В конструкторе полю присвоим значение "Hello World!", как показано ниже:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloWorld
{
    public class HelloWorld
    {
        private string _helloWorldString;
        public HelloWorld()
        {
            _helloWorldString = "Hello World!";
        }
    }
}

Свойства

Свойства позволяют читать приватные поля и присваивать им значения. Для выполнение этих действий для каждого свойства необходимо определить get-метод, для чтения значения и set-метод, для присвоения значения. В нашем примере добавим публичное свойство "Message" в класс "HelloWorld", которое возвращает и присваивает значение приватному полю "_helloWorldString". Чтобы можно было выполнять чтение и присваивание значения определим соответственно get- и set-методы, как показано ниже:

        public string Message
        {
            get
            {
                return _helloWorldString;
            }
            set
            {
                _helloWorldString = value;
            }
        }

Методы

Метод - это группа инструкций, которые выполняют определенную задачу. Аналогично cicode функции, метод может иметь ряд аргументов и может возвращать (опционально) некоторое значение.

Создадим метод, который будет отображать стандартное модальное диалоговое окно Windows с текстом из свойства "Message". Для отображения стандартного модального диалогового окна будем вызывать метод из .NET Framework. Чтобы можно было использовать данный метод, необходимо добавить в наш проект ссылку на соответствующее пространство имен, которому принадлежит данный метод. Для этого щелкните правой кнопкой мыши на элемент "References" в "Solution Explorer" и выберите пункт контекстного меню "Add Reference...".

Доступ к .NET сборкам в Vijeo Citect 2015. Добавление в проект ссылки на сборку
Рис. 4. Добавление в проект ссылки на сборку
 

В диалоговом окне "Reference Manager" щелкните слева на элементе "Assemblies", затем на элементе "Framework" и прокрутите открывшийся табличный список вниз, пока не увидите сборку "System.Windows.Forms", выделите её и нажмите на кнопку "OK".

Доступ к .NET сборкам в Vijeo Citect 2015. Выбор системной сборки .NET Framework System.Windows.Forms
Рис. 5. Выбор системной сборки .NET Framework System.Windows.Forms
 

После добавления в проект ссылки на сборку "System.Windows.Forms", необходимо воспользоваться инструкцией "using", чтобы получить доступ ко всем членам пространства имен "System.Windows.Forms", как показано ниже:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

Теперь можно реализовать метод для отображения диалоговое окно, как показано ниже:

        public void DisplayMessage()
        {
            MessageBox.Show(Message);
        }

Завершив написание простой .NET сборки необходимо выполнить процедуру ее построения. Для этого щелкните правой кнопкой мыши на элементе "HelloWorld" в "Solution Explorer" и выберите пункт контекстного меню "Build". После успешного построения решения будет создан файл "HelloWorld.dll" в директории "\bin\Debug" проекта. В нашем случае .NET сборка будет находится по пути "D:\www.proasutp.com\HelloWorld\HelloWorld\bin\Debug".

Доступ к .NET сборкам в Vijeo Citect 2015. Запуск построения сборки HelloWorld.dll
Рис. 6. Запуск построения сборки HelloWorld.dll
 

Страницы

Теги: