ProtocolItem

<< Click to Display Table of Contents >>

Navigation:  Приложения > Автоматизированная разработка проектов >

ProtocolItem

Тип ProtocolItem - соответствует элементу Протокол.

Унаследован от класса ObjectOrTagBase.

Общие свойства для всех элементов (класса Item) смотрите в соответствующем разделе.

Для изменения настроек протокола используется класс SettingItem.

Свойства и методы, характерные для ProtocolItem, представлены в таблице:

Название

Значение свойства / Тип возвращаемого значения метода

Описание

Пример использования

Свойства (Properties)

DataArchiveRef

ArchiveItem

Соответствует настройке протокола Архив данных.
Методы доступа: get/set

protocol.DataArchiveRef = newArchive;

EventsArchiveRef

EventsArchiveItem

Соответствует настройке протокола Архив сообщений.
Методы доступа: get/set

protocol.EventsArchiveRef = newEventsArchive;

Settings

Коллекция полей группы Настройки протокола.
Методы доступа: get

var mod = (ProtocolItem)RootItemModel.GetChildByNamePath("Система.АРМ 1.Протоколы.Modbus TCP");

       

      // Перебор всех полей группы «Настройки»

      foreach (var setting in mod.Settings)

       {

          WriteConsole($"{setting.Name} = {setting.InitialValue} ({setting.ValueType})");

       }

SubType

Подтип протокола. Соответствует свойству Подтип в Панели свойств в категории Служебные.
Методы доступа: get/set

var protocol = (ProtocolItem)RootItemModel.GetChildByNamePath("Система.АРМ 1.Протоколы.Modbus TCP");

      if (protocol == null)

       {

          WriteConsole("Протокол не найден.");

          return;

       }

      WriteConsole($"Протокол: {protocol.Name}, подтип: {protocol.SubType ?? "(не задан)"}");

WindowRef

ViewDeclarationInObjectItem

Соответствует настройке протокола Ссылка на окно для сообщений.
Методы доступа: get/set

protocol.WindowRef = newWindow;

Методы (Methods)

AddFolder(string?)

ProtocolFolder (Папка)

Добавление Папки. В качестве аргумента задается Имя Папки (Display Name)

newObject.AddFolder();

AddModule(string?)

Добавление Модуля в протокол. В качестве аргумента метода задается Имя Модуля, существующего в библиотеке MasterSCADA 4D

newObject.AddModule(OPC UA);

AddAIChannel(string?)

ChannelItem (AI канал)

Добавление AI канала в модуль. В качестве аргумента задается имя, которое будет присвоено AI каналу

var protocol = (ProtocolItem)RootItemModel.GetChildByNamePath("Система.АРМ 1.Протоколы.OPC UA");      

      if (protocol == null)

       {

          WriteConsole("Протокол не найден.");

          return;

       }

      // Все методы возвращают ChannelItem; имя - DisplayName в дереве

      var baseChannel = protocol.AddBaseChannel("CH_Base_1");

      var aiChannel   = protocol.AddAIChannel("CH_AI_1");

      var diChannel   = protocol.AddDIChannel("CH_DI_1");

      var aoChannel   = protocol.AddAOChannel("CH_AO_1");

      var doChannel   = protocol.AddDOChannel("CH_DO_1");

      var aioChannel  = protocol.AddAIOChannel("CH_AIO_1");

      var dioChannel  = protocol.AddDIOChannel("CH_DIO_1");

      WriteConsole($"AddBaseChannel - {baseChannel.Name}");

      WriteConsole($"AddAIChannel   - {aiChannel.Name}");

      WriteConsole($"AddDIChannel   - {diChannel.Name}");

      WriteConsole($"AddAOChannel   - {aoChannel.Name}");

      WriteConsole($"AddDOChannel   - {doChannel.Name}");

      WriteConsole($"AddAIOChannel  - {aioChannel.Name}");

      WriteConsole($"AddDIOChannel  - {dioChannel.Name}");

AddAIOChannel(string?)

ChannelItem (AIO канал)

Добавление AIO канала в модуль. В качестве аргумента задается имя, которое будет присвоено AIO каналу

AddAOChannel(string?)

ChannelItem (AO канал)

Добавление AO канала в модуль. В качестве аргумента задается имя, которое будет присвоено AO каналу

AddBaseChannel(string?)

ChannelItem (базовый канал)

Добавление Базового канала в модуль. В качестве аргумента задается имя, которое будет присвоено базовому каналу

AddDIChannel(string?)

ChannelItem (DI канал)

Добавление DI канала в модуль. В качестве аргумента задается имя, которое будет присвоено DI каналу

AddDIOChannel(string?)

ChannelItem (DIO канал)

Добавление DIO канала в модуль. В качестве аргумента задается имя, которое будет присвоено DIO каналу

AddDOChannel(string?)

ChannelItem (DO канал)

Добавление DO канала в модуль. В качестве аргумента задается имя, которое будет присвоено DO каналу

FindChannel(string)

Поиск канала по имени в протоколе. null, если не найден. Возвращает первый подошедший по имени

var protocol2 = (ProtocolItem)RootItemModel.GetChildByNamePath("Система.АРМ 1.Протоколы.OPC UA");

      if (protocol2 == null)

       {

          WriteConsole("Протокол не найден.");

          return;

       }

      var channelInProtocol = protocol2.FindChannel("AI 1");

      WriteConsole($"Канал: {channelInProtocol?.Name ?? "не найден"}");

FindIOModule(string)

Поиск модуля по имени в протоколе. null, если не найден. Возвращает первый подошедший по имени

var protocol1 = (ProtocolItem)RootItemModel.GetChildByNamePath("Система.АРМ 1.Протоколы.Modbus TCP");

      if (protocol1 == null)

       {

          WriteConsole("Протокол не найден.");

          return;

       }

      var moduleInProtocol = protocol1.FindIOModule("ModbusTCP Device 1");

      WriteConsole($"Модуль: {moduleInProtocol?.Name ?? "не найден"}");

ResetSubType()

 

Сброс подтипа протокола к унаследованному или дефолтному значению.

protocol.ResetSubType();