|
<< Click to Display Table of Contents >> Navigation: Приложения > Автоматизированная разработка проектов > ProtocolItem |
Тип ProtocolItem - соответствует элементу Протокол.
Унаследован от класса ObjectOrTagBase.
Общие свойства для всех элементов (класса Item) смотрите в соответствующем разделе.
Для изменения настроек протокола используется класс SettingItem.
Свойства и методы, характерные для ProtocolItem, представлены в таблице:
Название |
Значение свойства / Тип возвращаемого значения метода |
Описание |
Пример использования |
Свойства (Properties) |
|||
DataArchiveRef |
Соответствует настройке протокола Архив данных. |
protocol.DataArchiveRef = newArchive; |
|
EventsArchiveRef |
Соответствует настройке протокола Архив сообщений. |
protocol.EventsArchiveRef = newEventsArchive; |
|
Settings |
Коллекция полей группы Настройки протокола. |
var mod = (ProtocolItem)RootItemModel.GetChildByNamePath("Система.АРМ 1.Протоколы.Modbus TCP");
// Перебор всех полей группы «Настройки» foreach (var setting in mod.Settings) { WriteConsole($"{setting.Name} = {setting.InitialValue} ({setting.ValueType})"); } |
|
SubType |
Подтип протокола. Соответствует свойству Подтип в Панели свойств в категории Служебные. |
var protocol = (ProtocolItem)RootItemModel.GetChildByNamePath("Система.АРМ 1.Протоколы.Modbus TCP"); if (protocol == null) { WriteConsole("Протокол не найден."); return; } WriteConsole($"Протокол: {protocol.Name}, подтип: {protocol.SubType ?? "(не задан)"}"); |
|
WindowRef |
Соответствует настройке протокола Ссылка на окно для сообщений. |
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(); |